package com.hrbxlh.dao;

import java.io.IOException;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

@Repository
public interface RelStuClassDao {
	
	/**
	 * @description 添加学生与班级关联的方法，参数key与数据库column对应即可。 
	 * @param Map<String,Object> paramMap
	 * @return 
	 * @throws Exception
	 */
	public boolean addRelStuClass(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 通过学号删除学生与班级的关联表
	 * @param List<Integer> 学生id的集合
	 * @return 
	 * @throws Exception
	 */
	public boolean delRelStuClassBySId(List<String> paramList) throws Exception;
	
	/**
	 * @description 通过班级号删除关联表的人和班级
	 * @param List<Integer> 班级id的集合
	 * @return 
	 * @throws Exception
	 */
	public boolean delRelStuClassByClassId(List<String> paramList) throws Exception;
	
	/**
	 * @description 通过班级号删除课程班级关联表
	 * @param List<Integer> 班级id的集合
	 * @return 
	 * @throws Exception
	 */
	public boolean delRelcourseClassByClassId(List<String> paramList) throws Exception;
	
	/**
	 * @description 通过班级号删除消息班级关联表
	 * @param List<Integer> 班级id的集合
	 * @return 
	 * @throws Exception
	 */
	public boolean delRelnotClassByClassId(List<String> paramList) throws Exception;
	
	/**
	 * @description 通过班级号删除教师班级关联表
	 * @param List<Integer> 班级id的集合
	 * @return 
	 * @throws Exception
	 */
	public boolean delRelteaClassByClassId(List<String> paramList) throws Exception;
	
	/**
	 * @description 通过工号删除教师班级关联表
	 * @param List<Integer> 班级id的集合
	 * @return 
	 * @throws Exception
	 */
	public boolean delRelteaClassByStuOrTeaId(List<String> paramList) throws Exception;
	
	/**
	 * @description 通过教师号删除教师班级关联表（刑新加的表）
	 * @param List<Integer> 班级id的集合
	 * @return 
	 * @throws Exception
	 */
	public boolean delClassRelByStuOrTeaId(List<String> paramList) throws Exception;
	
	/**
	 * @description 通过教师/学号删除人与课程的关联表
	 * @param List<Integer> 班级id的集合
	 * @return 
	 * @throws Exception
	 */
	public boolean delRelstuCouByStuorteaId(List<String> paramList) throws Exception;
	
	/**
	 * @description 通过教师/学号删除人与课程的关联表(删除班级时用)
	 * @param List<Integer> 班级id的集合
	 * @return 
	 * @throws Exception
	 */
	public boolean delRelstuCouByStuorteaIdClass(List<String> paramList) throws Exception;
	
	/**
	 * @param paramMap
	 * @return  通过教师号获取此教师所属班级
	 * @throws IOException
	 */
	public List<String> getClassByStuorteaId(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @param paramMap
	 * @return  通过班号获取此班级所属课程
	 * @throws IOException
	 */
	public List<Map<String,Object>> getRelCourseByClassId(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @description 通过课程号/学号添加人与课程的关联表
	 * @param List<Integer> 学号和课程号的集合
	 * @return 
	 * @throws Exception
	 */
	public boolean addRelstuCouByStuAndCou(List<Map<String, Object>> paramList) throws Exception;
	
	/**
	 * @param paramMap
	 * @return  查询当前人是否和当前课程有关联
	 * @throws IOException
	 */
	public Map<String,Object> getRelStuCouByStuCou(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @param paramMap
	 * @return  通过学号、课程号查询当前登陆人所属教师
	 * @throws IOException
	 */
	public Map<String,Object> getRelTeaIdByStuId(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @param paramMap
	 * @return  通过教师号获取此教师所属班级(消息通知那---结课的班级不要)
	 * @throws IOException
	 */
	public List<String> getClassByStuorteaIdAndNo(Map<String, Object> paramMap) throws Exception;
	
	/**
	 * @param paramMap
	 * @return  查询当前要评价学生所在班级所属课程(参数是学号、课程号)
	 * @throws IOException
	 */
	public Map<String,Object> getStuClaAndCou(Map<String, Object> paramMap) throws Exception;
	
	

}
